The present invention represents an improvement on the object oriented operating system represented by U.S. Pat. No. 5,129,083, issued Jul. 7, 1992, "Conditional Object Creation System and Method In An Object Based Computer Operating System"; U.S. Pat. No. 5,136,712, issued Aug. 4, 1992, "Temporary Object Handling System and Method In An Object Based Computer Operating System"; and particularly U.S. Pat. No. 5,129,084, issued Jul. 7, 1992, "Object Container Transfer System and Method In An Object Based Computer System". Those patents are hereby incorporated by reference as background information.
In Unix, Microsoft's DOS for personal computer, and many other operating systems, files are located using a hierarchy or tree structure of file directories. In such operating systems there is a single defined syntax for defining the pathname of each file. In DOS, the definition of a file's pathname is
Diskname: [Directory ]filename where "[Directory ]" means that a pathname will contain zero or more pathname elements that comprise a Directory name followed by a backslash (" "). Furthermore, in Microsoft DOS there is a single definition of the syntax for disknames and another single definition for all directory names and filenames. In other words, in Microsoft DOS one cannot have a directory which uses a completely different pathname syntax than other directories. The file pathname rules for Unix are different from those of Microsoft DOS, but the limitations are similar: there is a single pathname syntax used for locating all files in a computer system.
Furthermore, both Unix and Microsoft DOS use a hierarchical tree of directories for defining each file's position. In other words, only one pathname is defined for each file.
The present invention is concerned with providing "object directory" data structures for quickly and efficiently locating objects stored in a computer system, while providing almost complete flexibility in terms of the object naming and path naming conventions used to indicate an object's storage location. In the context of the present invention, objects include a wide variety of ephemeral or temporary objects which exist only for the duration of a particular computation, as well as permanent objects such as files, file systems, and operating system objects that are the foundation of the computer system's operating system. In an object oriented operating system, there are typically several dozen types of objects in addition to disk files.
In U.S. Pat. No. 5,136,712, all objects must be located through the use of "object containers", all of which have a predefined data structure. Furthermore, the routines used for locating objects through use of the object containers were entirely predefined by the operating system.
It is a premise of the present invention that while it is useful for a computer operating system to have a default pathname convention and default object locating procedure for locating objects, it would also be useful and efficient to allow a computer system to allow the use of a variety of pathname conventions and object location procedures that differ from the default convention and procedure. For instance, process objects and thread objects are extremely ephemeral, and thus the data structures and procedures for locating such objects might be best implemented differently than the data structures and procedures used to locate other types of objects. Similarly, different filing subsystems might profitably use different data structures and procedures for locating file objects.